Add boolean return value for gtk_text_tag_table_add()
authorSébastien Wilmet <swilmet@gnome.org>
Thu, 4 Apr 2013 11:22:38 +0000 (13:22 +0200)
committerSébastien Wilmet <swilmet@gnome.org>
Mon, 12 May 2014 17:10:30 +0000 (19:10 +0200)
The user doesn't need to check the return value, because if FALSE is
returned it is a programmer error. But it permits a nicer behavior for
gtk_text_buffer_create_tag() in case of failure.

https://bugzilla.gnome.org/show_bug.cgi?id=614717

gtk/gtktexttagtable.c
gtk/gtktexttagtable.h

index f750318ab7eab24b47940a78c6f335e42892efdb..e44fb0ada0be0bf907edd290849f58ee2338a7d8 100644 (file)
@@ -236,17 +236,19 @@ gtk_text_tag_table_buildable_add_child (GtkBuildable        *buildable,
  *
  * @tag must not be in a tag table already, and may not have
  * the same name as an already-added tag.
+ *
+ * Returns: %TRUE on success.
  **/
-void
+gboolean
 gtk_text_tag_table_add (GtkTextTagTable *table,
                         GtkTextTag      *tag)
 {
   GtkTextTagTablePrivate *priv;
   guint size;
 
-  g_return_if_fail (GTK_IS_TEXT_TAG_TABLE (table));
-  g_return_if_fail (GTK_IS_TEXT_TAG (tag));
-  g_return_if_fail (tag->priv->table == NULL);
+  g_return_val_if_fail (GTK_IS_TEXT_TAG_TABLE (table), FALSE);
+  g_return_val_if_fail (GTK_IS_TEXT_TAG (tag), FALSE);
+  g_return_val_if_fail (tag->priv->table == NULL, FALSE);
 
   priv = table->priv;
 
@@ -254,7 +256,7 @@ gtk_text_tag_table_add (GtkTextTagTable *table,
     {
       g_warning ("A tag named '%s' is already in the tag table.",
                  tag->priv->name);
-      return;
+      return FALSE;
     }
   
   g_object_ref (tag);
@@ -277,6 +279,7 @@ gtk_text_tag_table_add (GtkTextTagTable *table,
   tag->priv->priority = size - 1;
 
   g_signal_emit (table, signals[TAG_ADDED], 0, tag);
+  return TRUE;
 }
 
 /**
index 90664c8913b4221ad152d8c7f6a411fc2587d90f..e853c40a429930ff318c09fb77b9fc7ae0f35d3e 100644 (file)
@@ -73,7 +73,7 @@ GType          gtk_text_tag_table_get_type (void) G_GNUC_CONST;
 GDK_AVAILABLE_IN_ALL
 GtkTextTagTable *gtk_text_tag_table_new      (void);
 GDK_AVAILABLE_IN_ALL
-void             gtk_text_tag_table_add      (GtkTextTagTable        *table,
+gboolean         gtk_text_tag_table_add      (GtkTextTagTable        *table,
                                               GtkTextTag             *tag);
 GDK_AVAILABLE_IN_ALL
 void             gtk_text_tag_table_remove   (GtkTextTagTable        *table,